// pages/search/search.js
import request from "../../utils/request"
let timeout1=null //防抖
Page({

    /**
     * 页面的初始数据
     */
    data: {
        placeholderCon:'',//占位内容
        searchValue:'',//搜索内容
        historyList:[],//搜索历史
        searchList:[],//搜索结果
        hotList:[],//搜索历史
        flag:false //是否开启搜索结果页
    },

    /**
     * 生命周期函数--监听页面加载
     */
    onLoad: function (options) {
        //获得搜索历史
        this._getHistory()
        //获得初始数据：热搜榜,占位字
        this._initData()
        
    },
    //方法集
    async _getHistory(){
        let historyList = wx.getStorageSync('searchHistory');
        if(historyList){
          this.setData({
            historyList
          })
        }
        console.log(this.data.historyList);
    },
    async _initData(){
        let placeholderData = await request('/search/default',0);
        let list=await request('/search/hot/detail',0)
        this.setData({
            placeholderCon: placeholderData.data.showKeyword,
            hotList: list.data
          })
    },
    async _getSearchList(value){
          let {searchValue, historyList} = this.data;
          // 发请求获取关键字模糊匹配数据
          let searchListData = await request('/search',0, {keywords: searchValue, limit: 10});
          this.setData({
            searchList: searchListData.result.songs
          })
          
          // 将搜索的关键字添加到搜索历史记录中
          if(historyList.indexOf(searchValue) !== -1){
            historyList.splice(historyList.indexOf(searchValue), 1)
          }
          historyList.unshift(searchValue);
          this.setData({
            historyList
          })
          
          wx.setStorageSync('searchHistory', historyList)
          console.log(this.data.searchList);
    },
    valueChange(e){
        console.log(e);
        let value=e.detail.value
        this.setData({
            searchValue:value,
            flag:true
        })
        if(timeout1){
            clearTimeout(timeout1)
        }
        timeout1=setTimeout(()=>{//防抖
            // 若搜索数据为空，则不进行后端请求
            if(!value){
                this.setData({
                  searchList: []
                })
                return
              }
            this._getSearchList(value)
        },500)

    },
    clear(){
      this.setData({
        searchValue:'',
        searchList:[],
      })
    },
    cancel(){
      this.setData({
        searchList:[],
        searchValue:'',
        flag:false //关闭搜索结果
      })
    },
    delete(){
      wx.showModal({
        content: '确定删除历史记录吗？',
        success: (result) => {
          if(result.confirm){
            this.setData({
              historyList:[]
            })
            //清空缓存
            wx.removeStorageSync('searchHistory');
          }
        }
      });
    },
    /**
     * 生命周期函数--监听页面初次渲染完成
     */
    onReady: function () {

    },

    /**
     * 生命周期函数--监听页面显示
     */
    onShow: function () {

    },

    /**
     * 生命周期函数--监听页面隐藏
     */
    onHide: function () {

    },

    /**
     * 生命周期函数--监听页面卸载
     */
    onUnload: function () {

    },

    /**
     * 页面相关事件处理函数--监听用户下拉动作
     */
    onPullDownRefresh: function () {

    },

    /**
     * 页面上拉触底事件的处理函数
     */
    onReachBottom: function () {

    },

    /**
     * 用户点击右上角分享
     */
    onShareAppMessage: function () {

    }
})